Central Docs
Catálogo Inicio

05. Propagación entre funciones

Una función intermediaria puede recibir metadatos y reenviarlos sin que el llamador los escriba otra vez:

func sink(values: int32[], length: Len_t, element_size: Size_t) usize:
    return length + element_size

func forward(values: int32[], length: Len_t, element_size: Size_t) usize:
    return sink(values)

func main() int32:
    values: int32[2] = {10, 20}
    forward(values)
    return 0

La expansión de forward(values) se asocia con values y queda disponible para sink(values). Esto evita recalcular o exponer manualmente la longitud y el tamaño en cada capa de una API.

La asociación depende del nombre y del orden de la firma: Len_t y Size_t deben seguir a su parámetro de datos. No intentes pasar length o element_size como argumentos visibles; la llamada los rechaza por tener parámetros compiler-supplied.

La misma regla permite reenviar Len_t de un chain o buffer[] y Region_t de un parámetro unique, siempre que la función intermediaria conserve el contrato de la firma.